package persistent.dao;

import java.util.List;

import model.TStudent;
import model.VStudent;

/**
 * 学生管理业务类接口
 * @author djf
 * @since 2018/10/2
 */
public interface StudentDAO {

	/**
	 * 添加一个学生
	 * @param studet 学生对象
	 * @return 执行成功返回主键，失败返回0
	 */
	public int addStudent(TStudent student);
	
	/**
	 * 根据身份证号码验证学生是否已经存在
	 * @param IDNumber 身份证号码
	 * @return 成功返回true，失败返回false
	 */
	public boolean isexist(String IDNumber);
	
	/**
	 * 修改一个学生对象
	 * @param student 学生对象
	 * @return 执行成功返回true，失败返false
	 */
	public boolean updateStudent(TStudent student);
	
	/**
	 * 根据学号得到一个学生对象
	 * @param stuid 学号
	 * @return 成功返回一个学生对象，失败返回null
	 */
	public TStudent getTStudent(int id);
	
	/**
	 * 根据username查询用户信息
	 * @param username
	 * @return
	 */
	public VStudent getVStudent(int id);
	
	/**
	 * 删除一个学生信息
	 * @param stuid 学生id
	 * @return 执行成功返回true，失败返false
	 * @since 2018-11-24 11:08
	 */
	public boolean deleteStudent(int stuid);
	
	/**
	 * 根据查询条件得到一个学生对象列表
	 * @param strwhere 查询条件
	 * @return 成功返回TStudent对象列表，失败返回null
	 */
	public List<VStudent> getStudentList(String strwhere);
	
	/**
	 * 根据查询条件得到一个分页的学生对象列表
	 * @param strwhere 查询条件
	 * @param currentPage 当前页
	 * @param pageSize 每页数
	 * @return 成功返回TStudent对象列表，失败返回null
	 */
	public List<VStudent> getStudentListBywhere(String strwhere,int currentPage, int pageSize);
	
	/**
	 * 批量导入学生信息
	 * @param list 学生信息list
	 * @return 成功返回true，失败返回false
	 * @since 2019-01-10 14:24徐震霖修改
	 */
	public boolean batchImport(List<TStudent> list);
	
	/**
	 * 根据班级id生成学生账号
	 * @param classid 班级id
	 * @return 成功返回学生账号，失败返回null
	 * @since 2019-01-10 14:24徐震霖添加
	 */
	public String generateStuUserName(String classid);
}
